package ui;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class StudentInfoManager extends JFrame {
    public static DefaultTableModel tableModel;
    private JTextField idField, nameField, ageField, sexField, classNameField;
    private int nextId = 1; // 自动递增的ID

    public StudentInfoManager() {
        // 设置窗口标题
        super("学生信息管理");

        // 创建表格模型并初始化列名
        tableModel = new DefaultTableModel();
        tableModel.addColumn("ID"); // ID列
        tableModel.addColumn("姓名");
        tableModel.addColumn("年龄");
        tableModel.addColumn("性别");
        tableModel.addColumn("班级");

        // 创建表格组件
        JTable studentTable = new JTable(tableModel);

        // 创建输入框
        idField = new JTextField(5);
        idField.setEditable(false); // ID由系统自动分配
        nameField = new JTextField(10);
        ageField = new JTextField(5);
        sexField = new JTextField(5);
        classNameField = new JTextField(10);

        // 创建添加按钮
        JButton addButton = new JButton("添加学生");

        // 添加动作监听器到按钮
        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    // 从文本框获取数据
                    String name = nameField.getText();
                    int age = Integer.parseInt(ageField.getText());
                    String sex = sexField.getText();
                    String className = classNameField.getText();

                    // 将新学生信息添加到表格模型中，ID自动生成
                    tableModel.addRow(new Object[]{nextId++, name, age, sex, className});

                    // 清空文本框
                    nameField.setText("1");
                    ageField.setText("2");
                    sexField.setText("3");
                    classNameField.setText("4");

                    // 提示添加成功
                    JOptionPane.showMessageDialog(StudentInfoManager.this, "学生信息添加成功！");
                } catch (NumberFormatException ex) {
                    // 如果输入不是有效的整数，则显示错误消息
                    JOptionPane.showMessageDialog(StudentInfoManager.this, "请输入有效的年龄数字！", "输入错误", JOptionPane.ERROR_MESSAGE);
                }
            }
        });

        // 创建布局并将组件添加到面板
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(2, 5));
        panel.add(new JLabel("ID"));
        panel.add(idField);
        panel.add(new JLabel("姓名"));
        panel.add(nameField);
        panel.add(new JLabel("年龄"));
        panel.add(ageField);
        panel.add(new JLabel("性别"));
        panel.add(sexField);
        panel.add(new JLabel("班级"));
        panel.add(classNameField);

        // 将面板和按钮添加到窗口
        add(panel, BorderLayout.NORTH);
        add(new JScrollPane(studentTable), BorderLayout.CENTER);
        add(addButton, BorderLayout.SOUTH);

        // 设置窗口属性
        setSize(800, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }


}